// import router from "@/router/index.js"
import axios from "axios"
import constants from "../common/constants.js"
import catchUtil from "../utils/catchUtil.js"
import router from '@/router'

//配置axios 
const service = axios.create({
	baseURL: constants.HTTP_CONFIG.baseUrl,
	timeout: constants.HTTP_CONFIG.timeout,
	//其他配置
})

//设置请求拦截
service.interceptors.request.use(config => {
	//设置token
	const userInfo = catchUtil.getLocalStorage('userInfo')
	if (userInfo && userInfo.token) {
		//设置token
		config.headers.token = userInfo.token
	}
	return config;
})

//设置响应拦截
service.interceptors.response.use(response => {
	// console.log(response);
	const data = response.data;
	if(data.code == 2){
		router.replace('./login')
		return data
	}
	return response.data
}, (error) => {
	console.log("我出错了");
	if (error && error.response) {
		switch (error.response) {
			case 400:
				error.message = '错误请求';
				break;
			case 401:
				error.message = '未授权,请重新登录';
				break;
			case 403:
				error.message = '拒绝访问';
				break;
			case 404:
				error.message = '请求错误,未找到该资源';
				window.location.href = '/NotFound';
				break;
			case 405:
				error.message = '请求方法未允许';
				break;
			case 408:
				error.message = '请求超时';
				break;
			case 500:
				error.message = '服务器端出错';
				break;
			case 501:
				error.message = '网络未实现';
				break;
			case 502:
				error.message = '网络错误';
				break;
			case 503:
				error.message = '服务不可用';
				break;
			case 504:
				error.message = '网络超时';
				break;
			case 505:
				error.message = 'http版本不支持该请求 ';
				break;
			default:
				error.message = `连接错误${error.response.status}`
		}
	}
	if (error.message.includes('timeout')) {
		error.message = '请求超时'
	}
	return error.message
})

export default service